package com.tjbklx1.pattern.proxy.demo7;

import java.lang.reflect.InvocationHandler;

import org.junit.Test;

public class Client {
	@Test
	public void test1() {
		// 定义一个主题
		Subject subject = new RealSubject();
		// 定义一个Handler
		InvocationHandler handler = new MyInvocationHandler(subject);
		// 定义主题的代理
		Subject proxy = DynamicProxy.newProxyInstance(subject.getClass().getClassLoader(), subject.getClass()
				.getInterfaces(), handler);
		// 代理的行为
		proxy.doSomething("Finish");
	}

	@Test
	public void test2() {
		// 定义一个主题
		Subject subject = new RealSubject();
		// 定义主题的代理
		Subject proxy = SubjectDynamicProxy.newProxyInstance(subject);
		// 代理的行为
		proxy.doSomething("Finish");
	}
}